package com.shopping.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shopping.entity.User;
import com.shopping.dto.UserDTO;
import com.shopping.dto.UserQueryDTO;
import com.shopping.dto.UserUpdateDTO;
import com.shopping.dto.PasswordResetDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

public interface UserService extends IService<User> {
    /**
     * 用户注册
     */
    boolean register(User user);

    /**
     * 用户登录
     */
    String login(String username, String password);

    /**
     * 根据用户名查找用户
     */
    User findByUsername(String username);

    /**
     * 更新用户积分
     */
    boolean updatePoints(Long userId, Integer points);

    /**
     * 更新用户等级
     */
    boolean updateLevel(Long userId);

    /**
     * 获取用户列表
     */
    Page<UserDTO> getUserList(UserQueryDTO queryDTO);

    /**
     * 根据ID获取用户
     */
    UserDTO getUserById(Long id);

    /**
     * 更新用户信息
     */
    UserDTO updateUser(Long id, UserUpdateDTO updateDTO);

    /**
     * 重置密码
     */
    void resetPassword(Long id, PasswordResetDTO resetDTO);

    /**
     * 切换用户状态
     */
    void toggleUserStatus(Long id);

    /**
     * 获取当前登录用户
     */
    User getCurrentUser();

    /**
     * 获取用户统计信息
     */
    Object getUserStatistics();
}